/**
 * @file RP.c
 * @brief RP模块驱动实现
 * @author 废话文学创始人
 * @version 1.0
 * @date 2024-02-25
 */

#include "RP.h"

// 滤波缓存区
// 存放RP值的变量
uint16_t RP_value[RP_NUMBER];

/**
 * @brief RP初始化，进行电压校准
 */
void RP_init(void)
{
    HAL_ADCEx_Calibration_Start(&hadc2);
}

/**
 * @brief 阻塞读取RP的值
 */
void RP_Read_block(void)
{
    for (int i = 0; i < sizeof(RP_value) / sizeof(RP_value[0]); i++)
    {
        HAL_ADC_Start(&hadc2);
        HAL_ADC_PollForConversion(&hadc2, HAL_MAX_DELAY);
        RP_value[i] = HAL_ADC_GetValue(&hadc2);
    }
}

/**
 * @brief 获取某一个RP通道的值
 * @param RP_n RP通道编号（从1开始）
 * @return 对应RP编号的采集值
 */
uint16_t RP_Get_value(uint8_t RP_n)
{
    return RP_value[RP_n - 1];
}
